home *** CD-ROM | disk | FTP | other *** search
-
- Module specification for simple filter modules for Luna.
- --------------------------------------------------------
-
- - A Luna filter module uses the file extension 'FM' or 'fm'.
- - The module is loaded and accessed directly by Luna (straight to the
- text segment, without pexec() modes or relocation).
- - Paramater passing is via the stack.
- - The module is a normal program file with a 28 byte-long header.
-
- Return parameters in D0, registers d0-d7 and a0-a2 may be altered. While
- handling the block the filter module remains in memory and is called
- once before filtering starts for initialisation, then for each line of
- the block to be filtered, and finally once after filtering for de-
- initialisation.
-
- If such a module wishes to alter the line length (e.g. by substituting
- a character string by another one), then the Luna working buffer should
- be used, whose address is also passed.
-
- A possibly altered character string (null-terminated) is read by Luna
- from the working buffer and then,corresponding to the block markings,
- the line in the marked text is altered.
- To inform Luna that an altered character string is present in the
- working buffer a 1 should be returned after filtering, otherwise 0.
-
-
- ------------------------------------------------------------------------------
- Luna always calls the module with the following basic parameters:
- ------------------------------------------------------------------------------
- a: 4(sp) word Function number.
- b: 6(sp) long Address of the string to be handled.
- c: 10(sp) long Address of the working buffer.
- d: 14(sp) word Length of string to be handled.
- e: 16(sp) word Length of the working buffer (this is always
- the maximum line length present in the text*4.
-
- The values 'b' and 'd' are only valid for function number 0.
-
- ------------------------------------------------------------------------------
- The function numbers available to date:
- ------------------------------------------------------------------------------
- 0 = Execute filter function.
- 1 = Return a pointer to the info-text (see below).
- A pointer to the info-text is to be returned in D0.
- 2 = Initialisation of the module.
- Return is to be Null (OK), or an error code.
- 3 = Deinitialisation of the module.
- Return is to be Null (OK), or an error code.
- ------------------------------------------------------------------------------
- Exit codes to date (long):
- ------------------------------------------------------------------------------
- 0 : OK.
- 1 : New string in working buffer (Null-terminated).
- -32 : Invalid function number.
- <0 : TOS error-messages.
-